//
//  SinaTabBar.swift
//  WeiBo
//
//  Created by Apple on 15/12/30.
//  Copyright © 2015年 itcast. All rights reserved.
//

import UIKit

class SinaTabBar: UITabBar {

    /*
        1. 添加 button
        2. 修改frame
    */
    
    // 这个是 UIView的制定构造函数
    // 当你实现了 init(frame: CGRect) 方法之后,系统默认你自定义开发,会走这个方法,
    // 如果,你在 xib关联了这个类,这个类的初始化方法是 init?(coder aDecoder: NSCoder)
    // 然后 fatalError("init(coder:) has not been implemented") 抛出一个崩溃
    // 告诉你 ,你的xib初始化方法 是 init?(coder aDecoder: NSCoder), 你这里边,没有调用父类
   override init(frame: CGRect) {
    
        super.init(frame: frame)
    
        //添加子控件
        setupUI()
    }
    
    //
   required init?(coder aDecoder: NSCoder) {
        fatalError("你要用xib加载试图了,你必须要初始化")
//
//        super.init(coder: aDecoder)
//        setupUI()
   }
    
    // MARK:--添加子控件
    private func setupUI(){
    
        addSubview(composeButton)
        
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        // 设置 frame
        composeButton.center = CGPointMake(bounds.width * 0.5, bounds.height * 0.5)
        //UITabBarButton -- 是Swift 私有的类
        
        // 我们便利 subviews ,拿到所有的子类,然后判断一下,这个子类是不是 UITabBarButton
        // 如果是 UITabBarButton ,我们就改变frame
        // 如果不是,就不管了
       
//        print("--------0")
//        printLog(subviews)
//        printLog("===============")
        
        // 定义一个索引,来记录
        var index = 0
        
        let width = bounds.width / 5.0
        
        for subview in subviews{
        
//            print(subview)
            
            if subview.isKindOfClass(NSClassFromString("UITabBarButton")!) {
            
//                print("找到了 !!!")
                subview.frame = CGRectMake(CGFloat(index) * width, bounds.origin.y, width, bounds.height)
                
                index++
                
                if index == 2 {
                    index++
                }
                
            }
            
        }
    }

    
    //MARK:--懒加载一个button
    lazy var composeButton: UIButton = {
    
        let button = UIButton(type: UIButtonType.Custom)
        
        // 设置属性
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
        // 设置宽高
        button.sizeToFit()
        
        return button
        
    }()
}
